linux下cron命令用法 您所在的位置:网站首页 cron online linux下cron命令用法

linux下cron命令用法

#linux下cron命令用法| 来源: 网络整理| 查看: 265

cron是Linux下的一个定时执行工具,可以在无需人工干预的情况下运行作业。

在VPS上,cron一般用来执行定时备份任务,非常方便。

Centos默认已安装cron,但是并不自动运行,可以用以下的方法来启动和设置自动启动:

 

 

复制代码 代码如下:

#service crond start #启动服务

#chkconfig crond on   #开机自动启动

可以用crontab -e命令来编辑/var/spool/cron下对应用户的cron文件,也可以直接编辑/etc/crontab。

cron的命令格式如下:

分     小时    日     月      星期     命令

0-59   0-23   1-31   1-12     0-6     command

 

其中,0表示星期日,一行对应一个命令。

下面举几个例子,基本涵盖了常见的一些情况:

 

复制代码 代码如下:

  5       *       *           *     *     ls         指定每小时的第5分钟执行一次ls命令

 30     5       *           *     *     ls         指定每天的 5:30 执行ls命令

30     7       8           *     *     ls         指定每月8号的7:30分执行ls命令

30     5       8           6     *     ls         指定每年的6月8日5:30执行ls命令

30     5       8           6     *     ls         指定每年的6月8日5:30执行ls命令

30     6       *           *     0     ls         指定每星期日的6:30执行ls命令

30     3     10,20      *     *     ls         每月10号及20号的3:30执行ls命令

25     8-11 *            *     *     ls         每天8-11点的第25分钟执行ls命令

  */15   *       *          *     *     ls         每15分钟执行一次ls命令

30   6     */10          *     *     ls         每个月中,每隔10天6:30执行一次ls命令

22   4       *             *     *     root     run-parts     /etc/cron.daily

#每天4:22以root身份执行/etc/cron.daily目录中的所有可执行文件,run-parts参数表示,执行后面目录中的所有可执行文件。

添加后保存的路径是/var/spool/cron,可以直接用vi查看和修改。

 

脚本文件:

bakTime=` date +%Y%m%d%H%M%S`cp /home/test/dump.rdb /home/test/bakRedis/$bakTime.rdb

 

 

linux 下执行.sh文件总是提示permission denied

 

如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh

 or

chmod +x  *.sh

然后运行就OK了

 

 

Crontab用法

 

[root@yang1 data]# crontab --help   #/var/log/yy > /dev/null 2>&1

每隔一分钟把yangrong打印到yangrong1文件中,但该命令无法执行,因为>>与>/dev/null不可同时使用

 

2)/dev/null 2>&1解释

 

0是标准输入    使用

2是标准错误输出  使用2>或2>>

>/dev/null 2>&1  即错误输出与标准输出全部重定向到空,可以写成1>/dev/null 2>/dev/null

 

3)关于重定向的作用

重定向到空可以避免碎片文件占用inode资源

重定向到一个指定log里,可以看任务是否执行

 

4)关于导致磁盘inode满情况分析

定时任务执行成功or失败时,程序会向上层发送mail,由于平时工作中不打开sendmail功能,所以邮件会存储在临时目录/var/spool/clientmqueue,随着执行的任务次数多,文件也会越来越多,直到某一天,添加文件时,提示No space left on device,主要问题原因不在于垃圾文件会占很大空间,而在于每个文件会占用inode节点。(centos6.4默认不装sendmail,可能不会导致这个问题发生)。

所以crontab规则后需加 /dev/null 2>&1。

注:>> 与 >/dev/null 2>&1不可同时存在,不然无法执行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有